package com.qiankun.tang.app;

import android.content.Context;
import android.support.multidex.MultiDexApplication;

import com.common.library.tools.AppInfo;
import com.common.library.tools.PreferenceTools;
import com.facebook.drawee.backends.pipeline.Fresco;
import com.yolanda.nohttp.NoHttp;
import com.yolanda.nohttp.cache.DBCacheStore;
import com.yolanda.nohttp.cookie.DBCookieStore;

/**
 * @author txf
 * @Title 项目入口
 * @package com.txf.prevention
 * @date 2017/5/2 0002
 */

public class MyApplication extends MultiDexApplication {
    public static Context mContext;

    public MyApplication() {
        super();
    }
    @Override
    public void onCreate() {
        super.onCreate();
        mContext = this;
        initConfigTools();
        initThirdParty();
    }
    /**
     * 初始化配置和工具类
     */
    private void initConfigTools() {
        //偏好存储初始化
        PreferenceTools.getInstance().init(this);
        AppInfo.getInstance().init(this);
    }

    /**
     * 初始化第三方库
     */
    private void initThirdParty() {
       //图片库
        Fresco.initialize(this);
       //初始化网络请求库
        initHttp();
    }
    /**
     * 初始化网络库
     */
    private void initHttp() {
        NoHttp.initialize(this, new NoHttp.Config()
                // 设置全局连接超时时间，单位毫秒
                .setConnectTimeout(30 * 1000)
                // 设置全局服务器响应超时时间，单位毫秒
                .setReadTimeout(30 * 1000)
                // 保存到数据库
                .setCacheStore(
                        new DBCacheStore(this).setEnable(true) // 如果不使用缓存，设置false禁用。
                )
                // 默认保存数据库DBCookieStore，开发者可以自己实现。
                .setCookieStore(
                        new DBCookieStore(this).setEnable(false) // 如果不维护cookie，设置false禁用。
                )
        );
    }
    public static Context getContextInstance() {
        return mContext;
    }
}
